#ifndef TREE_H
#define TREE_H

#include "Sudoku.h"
#include "PartitionElement.h"

class Tree
{
public:
    //Constructor for root
    Tree( Sudoku *newSudoku );

    //Main functions
    bool start() ;

    int getCounter() ;
private:



    //Constructor for not root node
    Tree( PartitionElement* newPartition, Sudoku* newSudoku ) ;

    //-----Fields-----
    //Number of node
    int number ;
    //Pointer to sudoku
    Sudoku* sudoku ;
    //Pointer to PartitionElement for this node
    PartitionElement* partitionElement ;
    //Reference to left child
    Tree* left ;
    //Reference to right child
    Tree* right ;

    //-----Static Fields-----

    //Counter of nodes
    static int counter ;
};

#endif // TREE_H
